Software developers typically invest many hours testing each section or module of software they develop to help ensure that the software will operate as expected without generating errors, faults, or other execution maladies. Such testing may include tests executed to test functional, interactive, and communication behavior of the software within a development environment, such as that provided by a testing lab that includes one or more representative hardware systems: However, despite attempts to deliver error-free software to the user, untested or unanticipated uses of the software may cause problems to occur. Problems may occur or only be detected when hardware that was not part of a testing lab is used to operate or interact with the software.